Relatório Git Github e Python

Relatório para a disciplina de softwares estatísticos

Autor

Daniel Aprígio Santos de Oliveira

Data de Publicação

Invalid Date

Introdução:

Aprender ferramentas que facilitam e automatizam nosso trabalho é sempre importante, durante as aulas foi apresentado para nós uma das principais ferramentas de organização e versionamento dos programadores, o Git e o Github (sistema nuvem do Git), essa ferramenta é de suma importância e é uma ferramenta que se deve levar em toda a jornada acadêmica e profissional de um estatístico que está sempre mexendo com programação. O git e github será utilizados também ao decorrer da cadeira durando os ensinamentos de Python. Vamos ver alguns pontos chave dessa ferramenta e um conteudo inicial de python

Git e GitHub:

Uma breve história do Git:

Em meados de (1991-2002) surgia a necessidade de um processo de colaboração mais eficiente ao invés do processo artesanal de correções em arquivos. Dessa necessidade surgiu o BitKeeper, um sistema de controle de versão distribuído, porém, essa solução mais tarde viria a se tornar um problema, em 2005 a BitKeeper rompeu com a Linux deixando a ferramenta disponível apenas no modelo pago, Linus Torvald e seus colaboradores incontentes com a situação se viram determinados a contruir algo novo para substituir o BitKeeper e superar o mesmo, esse algo seria o Git. Mais tarde o que começou como uma resposta imediata a ruptura da BitKeep se tornou uma ferramente dominante de controle de versão.

Uma breve história do Github:

O GitHub nasceu em 2008, criado por Tom Preston-Werner, Chris Wanstrath e PJ Hyett, três desenvolvedores que queriam tornar o Git mais acessível e colaborativo.

Eles perceberam que, embora o Git fosse poderoso, faltava uma plataforma intuitiva para:

  • Hospedar repositórios

  • Facilitar colaboração em equipe

  • Popularizar o controle de versão

Curiosidades:

  • Em 2010, já tinha 1 milhão de repositórios.

  • Em 2012, o Facebook e o Google adotaram o GitHub.

  • Em 2018, a Microsoft comprou o GitHub por US$ 7,5 bilhões – mas manteve-o aberto e independente.

O que são:

Git:

Git é um sistema de controle de versão distribuído projetado para rastrear mudanças em arquivos e organizar o trabalho entre várias pessoas.

Ao contrário de outros sistemas de versionamento (como Subversion ou CVS), que armazenam arquivos como uma lista de alterações (deltas), o Git trata os dados como um conjunto de snapshots (fotos do estado dos arquivos em um determinado momento). Cada vez que você faz um commit, o Git tira uma “foto” dos arquivos e armazena uma referência a esse estado.

A maioria das operações no Git são feitas localmente, sem precisar de internet. Você pode ver o histórico, criar branches, fazer commits e reverter alterações sem depender de um servidor remoto.

Tudo no Git é verificado por um checksum (hash SHA-1) antes de ser armazenado. Isso significa que é impossível alterar um arquivo ou histórico sem que o Git detecte. Cada arquivo e commit é identificado por um código único de 40 caracteres (ex: 24b9da655...).

Github:

O GitHub é uma plataforma baseada em nuvem em que é possível armazenar, compartilhar e trabalhar com outras pessoas para escrever códigos.

Ao armazenar códigos em um “repositório” no GitHub é possível:

  • Demonstrar ou compartilhar seu trabalho.

  • Acompanhar e gerenciar alterações no código ao longo do tempo.

  • Permitir que outras pessoas revisem o seu código e deem sugestões para melhorá-lo.

  • Colaborar em um projeto compartilhado sem se preocupar que suas alterações afetarão o trabalho de seus colaboradores antes que você esteja pronto para integrá-los.

O trabalho colaborativo, uma das características fundamentais do GitHub, é possível graças ao software de código aberto Git, que serviu como base para a criação do GitHub.

Para que servem:

Como mencionado anteriormente, o Git e o GitHub servem como ferramentas complementares para controle de versão e colaboração em projetos. Enquanto o Git atua como sistema de versionamento local, rastreando alterações no código-fonte de maneira eficiente e segura, o GitHub funciona como plataforma de hospedagem em nuvem que potencializa os recursos do Git, adicionando funcionalidades colaborativas.

Dessa forma, Git e GitHub, quando utilizados em conjunto, proporcionam um ambiente robusto e eficiente para o gerenciamento de projetos de software, garantindo rastreabilidade, segurança e colaboração simplificada.

Comandos básicos:

  1. git init

    • Esse é o comando incial, ele cria a pasta .git que tem todos os arquivos para criar um repositório dentro na pasta do projeto.
  2. git add

    • O git add tem duas funções principais:

      • Começa a rastrear arquivos novos (monitorar os arquivos).

      • Prepara as alterações de arquivos ja existentes, marca como “staged” (preparado).

  3. git commit

    • Ele cria um registro permanente no histórico do Git, permitindo que você volte a essa versão quando quiser. É como tirar uma “foto” do seu projeto naquele momentos, guardando todas as alterações preparadas no git add.
  4. git push

    • git push é o comando que envia seus commits locais para um repositório remoto (como GitHub).
  5. git pull

    • O git pull é o comando que sincroniza seu repositório local com as alterações mais recentes do repositório remoto (GitHub, GitLab, etc.). Ele combina duas operações:

      • git fetch: Baixa as alterações do remoto.

      • git merge: Integra essas alterações no seu branch local.

  6. git clone

    • O git clone é o comando que cria uma cópia local de um repositório Git remoto (como do GitHub, GitLab ou Bitbucket). Ele é usado quando você quer:

      • Trabalhar em um projeto existente (que está na nuvem).

      • Contribuir para um projeto open-source.

      • Iniciar um projeto baseado em um template.

Repositório, commit e brach:

Repositório:

Um repositório é o elemento mais básico do Git e do GitHub. É um lugar onde você pode armazenar seu código, seus arquivos e o histórico de revisão de cada arquivo. Contém snapshots (fotos instantâneas) de todos os arquivos em cada versão. Mantém um histórico completo de alterações (quem modificou, quando e o que mudou). Permite ramificação (branches) para desenvolvimento paralelo.

  • Local: Armazenado no seu computador (pasta .git).

  • Remoto: Hospedado em plataformas como GitHub. Os repositórios podem ter vários colaboradores e podem ser públicos ou particulares.

Commit:

Um commit registra alterações em um ou mais arquivos no seu branch, parecido com salvar um arquivo qualquer que foi editado. O Git atribui a cada commit um ID exclusivo, denominado SHA ou hash, que identifica:

  • Cada uma das alterações feitas;

  • O momento em que as alterações foram feitas;

  • O autor das alterações.

Ao fazer um commit, você deve colocar uma mensagem que descreva brevemente as alterações.

Branch:

É uma linha de desenvolvimento separada, que permite aos desenvolvedores trabalhar em diferentes partes do projeto sem interferir no código principal. É muito usado para fazer testes no aequivo principal ou quando tem vários colaboradores no projeto, assim cada um faz um branch diferente e depois juntam tudo no main. Por exemplo:

git branch menu-navegacao    # Cria o branch
git checkout menu-navegacao  # Entra nele

Mexendo nele:

git add .
git commit -m "Adiciona menu"

Voltando para o branch principal (main):

git checkout main  # Volta para o branch original

pip:

O pip é o instalador de pacotes padrão do Python. Ele serve para baixar, instalar e gerenciar bibliotecas que não vêm junto com o Python, mas que são muito úteis para desenvolver projetos.

Com o pip, conseguimos acessar milhares de pacotes disponíveis no repositório oficial do Python, o PyPI.

Como instalar pacotes com pip:

Para instalar uma biblioteca com o pip, usamos o seguinte comando no terminal ou prompt de comando:

pip install nome-do-pacote

Por exemplo, para instalar o pacote pandas:

pip install pandas

Isso faz com que o pip baixe e instale automaticamente a biblioteca em seu ambiente Python.

Como atualizar o próprio pip

O pip pode ser atualizado por ele mesmo com o seguinte comando:

python -m pip install --upgrade pip

Esse comando usa o próprio Python para rodar o pip como módulo e garantir que ele seja atualizado para a versão mais recente.

Exemplos de bibliotecas populares

pandas

Usada para análise e manipulação de dados. Trabalha com estruturas como tabelas (DataFrames), séries temporais e arquivos CSV, Excel, entre outros.

Instalação:

pip install pandas

numpy

Fornece suporte a arrays, operações matemáticas e álgebra linear de forma rápida e eficiente. É a base para muitas bibliotecas científicas no Python.

Instalação:

pip install numpy

matplotlib

Utilizada para criar gráficos e visualizações de dados. Permite gerar gráficos de linha, barra, dispersão, histogramas e mais.

Instalação:

pip install matplotlib

requests

Facilita a realização de requisições HTTP, como acessar APIs ou páginas da internet, de forma simples e eficiente.

Instalação:

pip install requests

Conceitos iniciais de Python:

Tipos de dados: interger, float, string, boolean:

Um valor é uma das coisas básicas com as quais um programa trabalha, como uma letra ou um número. Esses valores pertencem a tipos diferentes: 2 é um número inteiro, 42.0 é um número de ponto flutuante e ‘Hello, World!’ é uma string (string é chamado assim pois são letras em uma sequência em cadeia).

Para ter certeza dos tipos que esses valores assumem podemos pedir para o própio python dizer qual tipo cada um pertence:

print(type(4))
> class 'int'
print(type(21.0))
> class 'float'
print(type('Hello, World!'))
> class 'str'
print(type(TRUE))
> class 'bool'

E ao colocar valores como ‘4’ e ‘21.0’, eles parecem números mas vão ser tratados como string por estarem entre aspas:

print(type('4'))
> class 'str'
print(type('21.0'))
> class 'str'

Sintetizando tudo vamos ter os seguinte tipos de valores:

Tipo Descrição Exemplo
int Números inteiros 42, -7
float Números decimais 3.14, -0.001
str Sequências de caracteres "Python"
bool Valores booleanos True, False

Variáveis e operadores básicos:

Uma variável é um nome que se refere a um valor. Uma instrução de atribuição cria uma nova variável e dá um valor a ela:

mensagem = 'relatório de python'
n = 17
pi = 3.141592

Esse exemplo faz três atribuições. A primeira atribuiu uma string a uma nova variável chamada mensagem; a segunda dá o número inteiro 17 a n; a terceira atribui o valor a pi.

Uma forma comum de representar variáveis por escrito é colocar o nome com uma flecha apontando para o seu valor. Este tipo de número é chamado de diagrama de estado porque mostra o estado no qual cada uma das variáveis está:

Figura 1 – Diagrama de estado.

Programadores geralmente escolhem nomes objetivos para suas variáveis, isso ajuda a entender o propósito da variável no código.

Os nomes de variáveis podem ter qualquer tamanho e podem incluir letras e números. No entanto, eles não podem começar com um número. Embora seja permitido usar letras maiúsculas, é comum utilizar apenas letras minúsculas para nomear variáveis.

O caractere de sublinhado (_) também é permitido e costuma ser usado para separar palavras em nomes compostos, como em nome_do_usuario ou relatorio_pip.

Caso você tente usar um nome inválido, o Python retornará um erro de sintaxe:

76trombones = 'big parade'
>SyntaxError: invalid syntax

more@ = 1000000
>SyntaxError: invalid syntax

class = 'Advanced Theoretical Zymurgy'
>SyntaxError: invalid syntax
  • 76trombones não é aceito porque começa com um número.
  • more@ é inválido porque o símbolo @ não pode fazer parte de nomes de variáveis.

  • class causa erro porque é uma palavra reservada da linguagem.

Essas palavras reservadas têm significados especiais no Python e não podem ser usadas como identificadores (nomes de variáveis, funções, etc.).

Aqui estão as palavras-chave da linguagem Python 3:

Palavra-chave
and del from None
as elif global nonlocal
assert else if not
break except import or
class False in pass
continue finally is raise
def for lambda return
True try while with
yield

Os operadores +, -, * e / executam a adição, a subtração, a multiplicação e a divisão como mostra os exemplos:

print(20 + 1) 
>21
print(22 - 1)
>21 
print(3 * 7)
>21
print(42 / 2)
>21.0

Listas, tuplas e dicionários:

Estruturas de controle: if, else, elif, for, while:

Funções: definição com def, parâmetros, retorno:

Importação de bibliotecas com import:

Boas práticas: comentários, nomes de variáveis, indentação:

Referências

  1. blablabla
  • alguma coisa muita coisa italico
git --version

git é uma blablablu